import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import styleImport from 'vite-plugin-style-import'
import path from 'path'
/**
 * 重要提示！！！！！！！！！！
 *  ts文件内部的配置暂时是无效的  
 */

// https://vitejs.dev/config/
export default defineConfig({

  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)),
    }
  },
  //基本路径
  base:"./",
  build:{
    outDir:"dist",
    sourcemap:false,
    assetsDir:"assets"
  },

  css:{
    devSourcemap:false,
    preprocessorOptions: {
      scss: {
        // 自定义的主题色
        additionalData: `@use "@styles/element/index.scss" as *;`,
      },
    }
  },

  plugins: [
    vue(),
    AutoImport({
      // 这里除了引入 vue 以外还可以引入pinia、vue-router、vueuse等，
      // 甚至你还可以使用自定义的配置规则，见 https://github.com/antfu/unplugin-auto-import#configuration
      imports: ['vue'],
      // 第三方组件库的解析器
      resolvers: [ElementPlusResolver(
        {importStyle: "sass",}
      )],
      dts: './auto-imports.d.ts',
    }),
    Components({
      // dirs 指定组件所在位置，默认为 src/components
      // 可以让我们使用自己定义组件的时候免去 import 的麻烦
      dirs: [],
      // 配置需要将哪些后缀类型的文件进行自动按需引入
      extensions: ['vue', 'md'],
      // 解析的 UI 组件库，这里以 Element Plus 和 Ant Design Vue 为例
      resolvers: [ElementPlusResolver(
        {importStyle: "sass",}
      )],
    }),
    styleImport({
      libs: [
        {
          libraryName: 'element-plus',
          base: 'element-plus/theme-chalk/base.css',
          resolveStyle: (name) => {
            return `element-plus/theme-chalk/${name}.css`
          },
          resolveComponent: (name) => {
            return `element-plus/lib/${name}`
          }
        }
      ]
    }),
  ],





  server: {
    host:'127.0.0.1',
    port: 8099,
    proxy: {
      '/api': {  //代理地址  
          target: 'http://127.0.0.1:8081/',  //需要代理的地址  
          changeOrigin: true,  //是否跨域  
          secure: false,
          ws: false,
          rewrite: (path) => {
            return path.replace(/^\/api/, '')
          }
      }
    },
    open: false,
    https:false,
  },

  preview: {
    host:'127.0.0.1',
    port: 8099,
    open: false,
    https:false,
  },



})
